/**
 * Affiche le libelle, la PM et le deltaPM de la region ou du secteur.
 */
function afficheLibNiveau() {
	
	$.ajax({ 
 		traditional: true, 
 		type: 'POST', 
 		url: './libNiveauCarto.do', 
 		target: "_blank", 
 		data : {}, 
 		error: function () {},
 		success: function(result) { 
 			$('#libNiveauId').html(result.nivGeogCartoS + " : " + result.libGeogCartoS);
 			$('#secteurCanvasPmId').html("PM " + parseFloat(result.pmGeogCartoS).toFixed(1) + " - "); 
 			$('#secteurCanvasDeltaPMId').html("&Delta;PM " + parseFloat(result.deltapmGeogCartoS).toFixed(1) + " - ");
 			$('#secteurCanvasVolId').html("VOL " + parseFloat(result.volGeogCartoS).toFixed(0) + " - ");
 			$('#secteurCanvasDeltaVolId').html("&Delta;VOL " + parseFloat(result.deltavolGeogCartoS).toFixed(0) + " - ");
 			$('#secteurCanvasEvolId').html("EVOL " + parseFloat(result.evolGeogCartoS).toFixed(1));
 			// On redessine la legende 
 			dessinerLegendeCartoSecteur(result.nivGeogCartoS, result.idGeogCartoS, "false");
 		}
 	});
	
}

/**
 * Ouverture du secteur ou de la région de l'arbre de navigation.
 */
function changeNiveauRegion() {
	
	$.ajax({ 
 		traditional: true, 
 		type: 'POST', 
 		url: './libNiveauCarto.do', 
 		target: "_blank", 
 		data : {}, 
 		error: function () {},
 		success: function(result) { 
 			// Gestion de l'arbre de navigation 
 			$('#myTree').jstree('deselect_all');
 			$("#" + result.idGeogCartoS + "-" + result.nivGeogCartoS).addClass("jstree-clicked");
	  		$('#myTree').jstree("open_node", $("#" + result.idGeogCartoS + "-" + result.nivGeogCartoS)); 
	  		// Gestion des variables globales 
	  		globalNivGeog = result.nivGeogCartoS;
	  		globalGeog = $("#" + result.idGeogCartoS + "-" + result.nivGeogCartoS).get(0).text;
	  		idGeog = result.idGeogCartoS;
	  		updateLevelInformations();
 		}
 	});
	
}

/**
 * Dessine un secteur ou une region. 
 */
function dessinerSecteur(nivGeog, idGeogArg, x, y, firstClickTree, calculPalettes) {
	
	var source = 	$('#sourceId').get(0).value;
	var periode = 	$('#periodId').get(0).value;
	var unite = 	$('#unitId').get(0).value;
	
	var indicateur		= ""; 
	var indicateur1		= ""; 
	var indicateur2		= ""; 
	if ($('#analyseCartoHieId').get(0).checked) {
		indicateur		= $('#carto-indicateur-id').get(0).value; 
	} else if ($('#analyseCartoIsoId').get(0).checked) {
		indicateur1		= $('#carto-indicateur-id-1').get(0).value; 
		indicateur2		= $('#carto-indicateur-id-2').get(0).value; 
	}
	
	$.ajax({ 
 		traditional: true, 
 		type: 'POST', 
 		url: './cartoSecteur.do', 
 		target: "_blank", 
 		data : {
 			idGeog:			idGeogArg,
 			nivGeog: 		nivGeog,
 			x:				x,
 			y: 				y,
 			typeImage: 		typeImage,
			source: 		source,
			periode: 		periode,
			unite:			unite,
			indicateur:		indicateur,
			indicateur1:	indicateur1,
			indicateur2:	indicateur2,
			calculPalettes:	calculPalettes
 		}, 
 		dataType: 'text',
 		error: function () {
 			alert('Erreur lors du chargement du secteur'); 
 		},
 		success: function(result) { 
 			
 			// Au premier appel, on n'ouvre pas l'arbre 
 			if (!firstClickTree) {
 				changeNiveauRegion();
 			}
 			 
 			// CSS
 			$("#loaderCanvasSecteur").empty();
 			
 			if (result == "") { // Aucune image à afficher (clic sur une zone vide dans l'image de gauche)
 				$("#secteurCanvas").html('');
 				$('#libNiveauId').html(''); 
 				$('#legendesSecteur').css("display", "none");
 			} else { 
 				
 				// Affichage de l image creee correspondant au secteur ou à la region
 				$("#secteurCanvas").html('<img id="imgSecteurGenerated" alt="Compatible IE9" src="data:image/' + typeImage + ';base64,' + result + '" />');
 				
 				// Affichage d'informations 
 				afficheLibNiveau();
 				
 				// Gestion de l infobulle sur la carte  
 	 			$("#imgSecteurGenerated").mousemove(function(event) {
 	 				if (!event.offsetX) { // Resolution d'un bug sous Firefox 
 		 				event.offsetX = (event.pageX - $(event.target).offset().left);
 		 				event.offsetY = (event.pageY - $(event.target).offset().top);
 	 				}
 	 				xpos = event.offsetX;
 		 			ypos = event.offsetY;
 		 			$("#infobulle").hide();
 	 			});
 	 			
 	 			$("#imgSecteurGenerated").mouseout(function() {
 	 				$("#infobulle").hide();
 	 			});
 	 			
 	 			$("#imgSecteurGenerated").mousemove(_.debounce(function(){
 					var x_pos = $('#regionCanvas').width() + 4 + xpos;
 					var y_pos = ypos + 23;
 					$('#infobulle').css({top: y_pos, left: x_pos});
 					// Requete pour afficher l'infobulle
 					$.ajax({ 
 				 		traditional: true, 
 				 		type: 'POST', 
 				 		url: './cartoEvent.do', 
 				 		target: "_blank", 
 				 		data : {
 				 			x: 			xpos,
 				 			y: 			ypos,
 				 			idGeog:		idGeogArg,
 				 			nivGeog: 	nivGeog,
 				 			source: 	source,
 				 			unite:		unite,
 				 			periode:	periode
 				 		}, 
 				 		error: function () {},
 				 		success: function(result) { 
 				 			if (result.uga != -2) {
 				 				// Informations mises dans l'infobulle 
 				 				var infoHtml = "&nbsp;<b>" + result.ugaName + "</b>&nbsp;";
 				 				$("#infobulle").html(infoHtml);
 				 				$("#infobulle").show();
 				 			}
 				 		}
 				 	});
 	 			}, 1000));
 	 			
 	 			// Gestion du clic sur la carte 
 	 			$("#imgSecteurGenerated").click(function() {
 					// Requete 
 					$.ajax({ 
 				 		traditional: true, 
 				 		type: 'POST', 
 				 		url: './cartoEventClick.do', 
 				 		target: "_blank", 
 				 		data : {
 				 			x: 			xpos,
 				 			y: 			ypos,
 				 			idGeog:		idGeogArg,
 				 			nivGeog: 	nivGeog,
 				 			source: 	source,
 				 			unite:		unite,
 				 			periode:	periode
 				 		}, 
 				 		error: function () {},
 				 		success: function(result) { 
 				 			$("#infobulleregion").hide();
 				 			$("#infobulle").hide();
 				 			if (result.pm == "") {
 				 				$('#secteurCanvasUga').html("");
 					 			$('#secteurCanvasUgaPmId').html("");
 					 			$('#secteurCanvasUgaDeltaPMId').html("");
 					 			$('#secteurCanvasUgaVolId').html("");
 					 			$('#secteurCanvasUgaDeltaVolId').html("");
 					 			$('#secteurCanvasUgaEvolId').html("");
 				 			} else {
 				 				$('#secteurCanvasUga').html("UGA : " + result.uga);
 					 			$('#secteurCanvasUgaPmId').html("PM " + parseFloat(result.pm).toFixed(1) + " - ");
 					 			$('#secteurCanvasUgaDeltaPMId').html("&Delta;PM " + parseFloat(result.deltapm).toFixed(1) + " - ");
 					 			$('#secteurCanvasUgaVolId').html("VOL " + parseFloat(result.vol).toFixed(0) + " - ");
 					 			$('#secteurCanvasUgaDeltaVolId').html("&Delta;VOL " + parseFloat(result.deltavol).toFixed(0) + " - ");
 					 			$('#secteurCanvasUgaEvolId').html("EVOL " + parseFloat(result.evol).toFixed(1));
 				 			}
 				 			// TYPE CARTO : HIERARCHIQUE OU ISOGEOG 
 				 			if ($('#analyseCartoHieId').get(0).checked) { // HIERARCHIQUE
 				 				// Gestion de l'arbre de navigation 
 					 			$('#myTree').jstree('deselect_all');
 					 			$("#" + result.idGeog + "-UGA").addClass("jstree-clicked");
 					 			$('#myTree').jstree("open_node", $("#" + result.idGeog + "-UGA").parent().parent().parent().children("a"));
 						  		$('#myTree').jstree("open_node", $("#" + result.idGeog + "-UGA")); 
 						  		// Gestion des variables globales 
 						  		globalNivGeog = "UGA";
 						  		globalGeog = $("#" + result.idGeog + "-UGA").get(0).text;
 						  		idGeog = result.idGeog;
 						  		updateLevelInformations();
 				 			} else if ($('#analyseCartoIsoId').get(0).checked) { // ISOGEOG
 				 				if (result.pm == "") {
 	 				 				$('#regionCanvasUga').html("");
 	 					 			$('#regionCanvasUgaPmId').html("");
 	 					 			$('#regionCanvasUgaDeltaPMId').html("");
 	 					 			$('#regionCanvasUgaVolId').html("");
 	 					 			$('#regionCanvasUgaDeltaVolId').html("");
 	 					 			$('#regionCanvasUgaEvolId').html("");
 	 				 			} else {
 	 				 				$('#regionCanvasUga').html("UGA : " + result.uga);
 	 					 			$('#regionCanvasUgaPmId').html("PM " + result.pm + " - ");
 	 					 			$('#regionCanvasUgaDeltaPMId').html("&Delta;PM " + result.deltapm + " - ");
 	 					 			$('#regionCanvasUgaVolId').html("VOL " + result.vol + " - ");
 	 					 			$('#regionCanvasUgaDeltaVolId').html("&Delta;VOL " + result.deltavol + " - ");
 	 					 			$('#regionCanvasUgaEvolId').html("EVOL " + result.evol);
 	 				 			}
 				 				var id = result.idGeog;
 	 				 			if (id != '-2' && id != '-1') {
 	 				 				// Gestion de l'arbre de navigation 
 	 					 			$('#myTree').jstree('deselect_all');
 	 					 			if (nivGeog == 'Zone') {
 		 						  		$("#" + result.idGeog + "-UGA").parent().parent().parent().parent().parent().children("a").addClass("jstree-clicked");
 		 					 			$('#myTree').jstree("open_node", $("#" + result.idGeog + "-UGA").parent().parent().parent().parent().parent().parent().parent().parent().children("a"));
 		 						  		$('#myTree').jstree("open_node", $("#" + result.idGeog + "-UGA").parent().parent().parent().parent().parent().children("a")); 
 		 						  		$("#" + result.idGeog + "-UGA").parent().parent().parent().parent().parent().children("a").click();
 		 						  		// Gestion des variables globales 
 		 						  		globalNivGeog = "Region";
 		 						  		globalGeog = $("#" + result.idGeog + "-UGA").parent().parent().parent().parent().parent().children('a').get(0).text.trim();
 		 						  		idGeog = $("#" + result.idGeog + "-UGA").parent().parent().parent().parent().parent().children('a').get(0).id.split('-')[0];
 	 					 			} else if (nivGeog == 'Region') {
 	 					 				$("#" + result.idGeog + "-UGA").parent().parent().parent().children("a").addClass("jstree-clicked");
 		 					 			$('#myTree').jstree("open_node", $("#" + result.idGeog + "-UGA").parent().parent().parent().parent().parent().parent().children("a"));
 		 						  		$('#myTree').jstree("open_node", $("#" + result.idGeog + "-UGA").parent().parent().parent().children("a")); 
 		 						  		$("#" + result.idGeog + "-UGA").parent().parent().parent().children("a").click();
 		 						  		// Gestion des variables globales 
 		 						  		globalNivGeog = "Secteur";
 		 						  		globalGeog = $("#" + result.idGeog + "-UGA").parent().parent().parent().children('a').get(0).text.trim();
 		 						  		idGeog = $("#" + result.idGeog + "-UGA").parent().parent().parent().children('a').get(0).id.split('-')[0];
 	 					 			}
 	 				 			}
 				 			}
 				 		}
 				 	});
 	 			});
 	 			
 			}
 			
 		}
 		
 	});
  
}
